<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition template="templates/template.xhtml"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:ui="http://java.sun.com/jsf/facelets"                
                xmlns:p="http://primefaces.org/ui"
                xmlns:f="http://java.sun.com/jsf/core">

    <ui:define name="tituloPagina">Listado Usuarios</ui:define>

    <ui:define name="menuIzquierda">
        <h:form>
            <p:panelMenu >
                <p:submenu label="Opciones">
                    <p:menuitem value="Administración"   icon="ui-icon-wrench"  url="ListadoUsuarios.jsf"/>
                    <p:menuitem value="Crear Usuario"  icon="ui-icon-document" url="CrearUsuarios.jsf" />
                    <p:menuitem value="Importar Usuarios"  icon="ui-icon-person" action="#{controladorUsuarios.importarUsuarios}"  />
                </p:submenu>
                <p:separator />

            </p:panelMenu>
        </h:form>
    </ui:define>

    <ui:define name="contenido">

        <h:form prependId="false" id="frmPrincipal">
            <div class="ui-widget-header" style="margin-bottom: 8px;font-size: 16px;padding-left: 10px;">
                <h:outputText value="Administración de Usuarios" />
            </div>
            <!-- CONFIGURACIÓN TABLA -->

            <p style="font-size: 12px;vertical-align: middle"> <p:graphicImage url="../imagenes/im_actualiza.png" style="vertical-align: middle; border: none;padding-left: 10px"/>Con esta opción se puede activar e inactivar a un usuario.</p>

            <p style="font-size: 12px;vertical-align: middle"> <p:graphicImage url="../imagenes/im_clave.png" style="vertical-align: middle; border: none;padding-left: 10px"/>Con esta opción se puede resetear la clave a un usuario.</p>

            <h:panelGroup id="pnlTabela"> 

                <p:dataTable value="#{controladorUsuarios.listaUsuario}" var="tabla" rows="10" paginator="true" paginatorAlwaysVisible="false"
                             rowIndexVar="rowNumber" filteredValue="#{controladorUsuarios.filtroUsuarios}" paginatorPosition="bottom" style="overflow: auto">

                    <p:column width="60">
                        <p:commandLink     title="Modificar"
                                           oncomplete="wdlgDetalle.show()" 
                                           update=":frmFormulario"
                                           action="#{controladorUsuarios.madificar}">
                            <p:graphicImage url="../imagenes/im_modificar.png" 
                                            style="vertical-align: middle; border: none"/>
                            <f:setPropertyActionListener
                                target="#{controladorUsuarios.usuUsuario}" value="#{tabla}" />

                        </p:commandLink>
                        <p:spacer width="10"/>
                        <p:commandLink action="#{controladorUsuarios.eliminar}" 
                                       title="Eliminar"
                                       update="@form">
                            <p:graphicImage url="../imagenes/im_eliminar.png" 
                                            style="vertical-align: middle; border: none"/>
                            <f:setPropertyActionListener
                                target="#{controladorUsuarios.usuUsuario}" value="#{tabla}" />
                        </p:commandLink>
                    </p:column>


                    <p:column headerText="NOMBRE" filterBy="#{tabla.usuNombre}" sortBy="#{tabla.usuNombre}">
                        <h:outputText value="#{tabla.usuNombre}"/>                     
                    </p:column>
                    <p:column headerText="ROL" sortBy="#{tabla.rolCodigo.rolNombre}">
                        <h:outputText value="#{tabla.rolCodigo.rolNombre}"/>
                    </p:column>
                    <p:column headerText="NICK" filterBy="#{tabla.usuNick}" sortBy="#{tabla.usuNick}">
                        <h:outputText value="#{tabla.usuNick}"/>
                    </p:column>                    
                    <p:column headerText="FECHA DE CREACIÓN" sortBy="#{tabla.usuFechacreacion}" >
                        <h:outputText value="#{tabla.usuFechacreacion}">
                            <f:convertDateTime type="date" dateStyle="short"/>
                        </h:outputText>
                    </p:column> 
                    <p:column headerText="ESTADO"  sortBy="#{tabla.usuActivo}">                        
                        <h:outputText rendered="#{tabla.usuActivo == true}" value="ACTIVO" style="color: #009900;font-weight: bold;font-size: 12px" />
                        <h:outputText rendered="#{tabla.usuActivo == false}" value="INACTIVO" style="color: #ff0000;font-weight: bold;font-size: 12px"/>
                    </p:column> 
                    <p:column>
                        <p:commandLink action="#{controladorUsuarios.activarDesactivarUsuario}" 
                                       title="Cambiar Estado"
                                       update=":frmPrincipal:pnlTabela">
                            <p:graphicImage url="../imagenes/im_actualiza.png" 
                                            style="vertical-align: middle; border: none"/>
                            <f:setPropertyActionListener
                                target="#{controladorUsuarios.usuUsuario}" value="#{tabla}" />
                        </p:commandLink>
                    </p:column>

                    <p:column>
                        <p:commandLink action="#{controladorUsuarios.resetearClave}" 
                                       title="Resetear Clave">
                            <p:graphicImage url="../imagenes/im_clave.png" 
                                            style="vertical-align: middle; border: none"/>
                            <f:setPropertyActionListener
                                target="#{controladorUsuarios.usuUsuario}" value="#{tabla}" />
                        </p:commandLink>
                    </p:column>

                </p:dataTable>
            </h:panelGroup>

        </h:form>


        <!-- CONFIGURACIÓN FORMULARIO -->
        <p:dialog id="dlgDetalhe" 
                  widgetVar="wdlgDetalle" 
                  modal="true" 
                  resizable="false"
                  appendToBody="true"
                  closable="true" 
                  header="Modificar Usuario" 
                  styleClass="dialogoSemScroll" >

            <h:form id="frmFormulario">
                <h:panelGrid id="pnlDetalhe" 
                             columns="1" 
                             styleClass="panelGridSemBorda">

                    <p:fieldset legend="DATOS DEL USUARIO">
                        <p>Cuando se crean un usuario nuevo la clave es la misma que el valor del campo <strong>Nick </strong></p>
                        <h:panelGrid columns="2">

                            <h:outputText value="Rol :"/>
                            <p:selectOneMenu value="#{controladorUsuarios.usuUsuario.rolCodigo.rolCodigo}" required="true" requiredMessage="Debe seleccionar un rol" >
                                <f:selectItem itemValue="" itemLabel="Seleccione un Rol ..." />
                                <f:selectItems value="#{controladorUsuarios.comRoles}" var="combo" itemValue="#{combo[0]}" itemLabel="#{combo[1]}"/>
                            </p:selectOneMenu>

                            <h:outputText value="Nombre :*"/>
                            <p:inputText value="#{controladorUsuarios.usuUsuario.usuNombre}" maxlength="150" size="30" required="true" requiredMessage="Debe ingresar el Nombre" />

                            <h:outputText value="Nick :*"/>
                            <p:inputText   value="#{controladorUsuarios.usuUsuario.usuNick}" maxlength="150" size="30" required="true" requiredMessage="Debe ingresar el Nick" />                           



                            <h:outputText value="Fecha de creación :*"/>
                            <p:calendar disabled="true" value="#{controladorUsuarios.usuUsuario.usuFechacreacion}"  size="10" required="true" requiredMessage="Debe ingresar la Fecha de creación"/>

                            <h:outputText value="Docente :"/>
                            <p:selectOneMenu value="#{controladorUsuarios.usuUsuario.docCodigo.docCodigo}" filter="true"  filterMatchMode="startsWith">
                                <f:selectItem itemValue="" itemLabel="Seleccione un Docente ..." />
                                <f:selectItems value="#{controladorUsuarios.comDocentes}" var="combo" itemValue="#{combo[0]}" itemLabel="#{combo[1]}"/>
                            </p:selectOneMenu>

                        </h:panelGrid>

                    </p:fieldset>

                    <f:facet name="footer">
                        <p:toolbar>
                            <p:toolbarGroup>

                                <p:commandButton action="#{controladorUsuarios.guardar()}" value="Guardar" icon="ui-guardar" update=":frmPrincipal" />
                            </p:toolbarGroup>
                        </p:toolbar>
                    </f:facet>

                </h:panelGrid>
            </h:form>
        </p:dialog>

    </ui:define>
</ui:composition>